package work.mediway.mdm.biz.service.biz;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.mediway.hos.messgateway.model.entity.ServiceManage;

import java.util.List;

import work.mediway.mdm.core.page.QueryRequest;
import work.mediway.mdm.biz.entity.biz.SsInterSystems;
import work.mediway.mdm.biz.entity.biz.SsServiceLinkSystem;
import work.mediway.mdm.biz.vo.biz.MessageStatisticsVO;
import work.mediway.mdm.biz.vo.biz.ServiceManageVO;

/**
 * @author zhongyj <1126834403@qq.com><br/>
 * @date 2022/6/22
 */
public interface SsInterSystemsService extends IService<SsInterSystems> {

    /**
     * 查询接入系统
     *
     * @param interSystems SsInterSystems
     * @param queryRequest QueryRequest
     * @return Page<SsInterSystems>
     */
    Page<SsInterSystems> listInterSystem(SsInterSystems interSystems, QueryRequest queryRequest);

    /**
     * 新增接入系统
     *
     * @param interSystems SsInterSystems
     */
    void saveInterSystem(SsInterSystems interSystems);

    /**
     * 新增服务(重写)
     *
     * @param serviceLinkSystem SsServiceLinkSystem
     */
    void saveInterService(SsServiceLinkSystem serviceLinkSystem);

    /**
     * 查询服务(重写)
     *
     * @param serviceManage ServiceManage
     * @param ssslsSystemId Long
     * @param queryRequest  QueryRequest
     * @return Page<ServiceManageVO>
     */
    Page<ServiceManageVO> selectInterService(ServiceManage serviceManage, Long ssslsSystemId, QueryRequest queryRequest);

    /**
     * 更新服务(重写)
     *
     * @param serviceLinkSystem SsServiceLinkSystem
     */
    void updateInterService(SsServiceLinkSystem serviceLinkSystem);

    /**
     * 删除服务(重写)
     *
     * @param ids List<String>
     */
    void deleteInterService(List<String> ids);

    /**
     * 删除接入系统
     *
     * @param ids List<String>
     */
    void deleteInterSystem(List<String> ids);

    /**
     * 根据服务id查询服务
     *
     * @param serviceId Long
     * @return ServiceManageVO
     */
    ServiceManageVO selectInterServiceByServiceId(Long serviceId);

    /**
     * 统计消息日志信息
     *
     * @param sendDate String
     * @return List<MessageStatisticsVO>
     */
    List<MessageStatisticsVO> selectStatisticsMessageList(String sendDate);

    /**
     * 编辑对接系统
     *
     * @param interSystems SsInterSystems
     */
    void updateInterSystem(SsInterSystems interSystems);
}
